perm filename APP5.XGP[AIM,DBL] blob sn#126864 filedate 1974-10-30 generic text, type T, neo UTF8
/LMAR=0/FONT#0=FIX25/FONT#1=SIGN57/FONT#2=SHD40/FONT#3=BDI25/FONT#4=NGB30/FONT#5=NGR20
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓↓APPENDIX 5. ␈↓ ␈↓αCF .... DIALOGUE␈↓



␈↓ α,␈↓Here␈α∩are␈α∪fragments␈α∩of␈α∪the␈α∩dialogue␈α∪which␈α∩the␈α∪user␈α∩went␈α∪through␈α∩with␈α∪PUP6␈α∩to
␈↓ α,␈↓generate␈α⊂the␈α⊂CF␈α⊂program.␈α⊂ Keep␈α⊂in␈α⊂mind␈α⊂that␈α⊂the␈α⊂entire␈α⊂dialogue␈α⊂occupied␈α⊂half
␈↓ α,␈↓a␈α⊂million␈α⊂characters,␈α⊂so␈α⊂only␈α⊂3%␈α⊂of␈α⊂it␈α⊂is␈α⊂presented␈α⊂here.␈α⊂ Even␈α⊂these␈α⊂numbers
␈↓ α,␈↓are␈α⊂deceptively␈α⊂small;␈α⊂they␈α⊂assume␈α⊂the␈α⊂user␈α⊂never␈α⊂interrupts.␈α⊂If␈α⊂he␈α⊂does,␈α⊂the
␈↓ α,␈↓size␈α∩of␈α∪the␈α∩interaction␈α∪can␈α∩swell␈α∪by␈α∩two␈α∪orders␈α∩of␈α∪magnitude!␈α∩As␈α∪an␈α∩example
␈↓ α,␈↓of␈α⊃this,␈α⊃a␈α⊃four␈α⊃line␈α⊃long␈α∩patch␈α⊃of␈α⊃the␈α⊃dialogue,␈α⊃near␈α⊃the␈α⊃beginning,␈α∩was␈α⊃re-
␈↓ α,␈↓run␈α∨in␈α∨a␈α≡mode␈α∨which␈α∨allowed␈α≡the␈α∨user␈α∨to␈α≡interrupt␈α∨after␈α∨each␈α≡BEING
␈↓ α,␈↓transferred␈α∪control,␈α∪and␈α∪query␈α∪(ask␈α∪some␈α∪of␈α∪the␈α∪thirty␈α∪questions)␈α∪BEINGs␈α∩as
␈↓ α,␈↓they␈α⊗ran.␈α⊗ The␈α⊗duplicated␈α⊗patch␈α⊗is␈α↔set␈α⊗off␈α⊗by␈α⊗rows␈α⊗of␈α⊗asterisks,␈α↔on␈α⊗page
␈↓ α,␈↓A5.2.␈α⊗ The␈α⊗expanded␈α⊗version␈α⊗occupies␈α∃pages␈α⊗A5.13␈α⊗to␈α⊗A5.20.␈α⊗ As␈α⊗usual,␈α∃the
␈↓ α,␈↓user's␈α≥reponses␈α≥are␈α≥␈↓βITALICIZED␈↓,␈α≡and␈α≥the␈α≥author's␈α≥meta-comments␈α≡are␈α≥in
␈↓ α,␈↓␈↓∧LARGE,␈α∩BOLD␈α∩type␈↓.␈α∩ Frequently,␈α∪the␈α∩user␈α∩is␈α∩asked␈α∩to␈α∪pick␈α∩a␈α∩name␈α∩for␈α∪a␈α∩new
␈↓ α,␈↓BEING.␈α∃He␈α∃is␈α∃presented␈α∃with␈α∃a␈α∃set␈α∃of␈α∃plausible␈α∃choices,␈α∃from␈α∃which␈α∃he␈α∀may
␈↓ α,␈↓deviate.␈α↔ This␈α↔verbosity␈α_obscures␈α↔the␈α↔heart␈α↔of␈α_the␈α↔dialogue,␈α↔so␈α_only␈α↔the
␈↓ α,␈↓first␈α⊂such␈α⊂naming␈α⊂is␈α⊂tolerated␈α⊂below;␈α⊂the␈α⊂others␈α⊂were␈α⊂deleted.␈α⊂ Names␈α⊂of␈α⊂new,
␈↓ α,␈↓specialized␈α∪versions␈α∪of␈α∪existing␈α∀BEINGs␈α∪are␈α∪typically␈α∪suffixed␈α∪by␈α∀a␈α∪number.
␈↓ α,␈↓The colon (:) is used like a hyphen below, for unimportant reasons.



␈↓ α,␈↓←␈↓βENTER(T)␈↓

␈↓ α,␈↓USER INTERRUPT LEVEL... ␈↓β0␈↓

␈↓ α,␈↓PUP: (PUP WANTS ANY TASK)


␈↓ α,␈↓USER: ␈↓β(WRITE A PROGRAM WHICH DOES CONCEPT FORMATION)␈↓

␈↓ α,␈↓PUP: (PUP IS ABOUT TO WRITE A PROGRAM TO DO (CONCEPT:FORMATION))


␈↓ α,␈↓PUP: ((C:F CONCEPT:FORMATION C CF) IS THE SET OF PLAUSIBLE NAMES OF
␈↓ α,␈↓  (CONCEPT FORMATION) WHICH IS AN EXPANSION OF
␈↓ α,␈↓  CONCEPT:FORMATION)

␈↓ α,␈↓PUP: (PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED
␈↓ α,␈↓        VERSION OF ( CONCEPT:FORMATION))

␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( CONCEPT:FORMATION), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.

␈↓ α,␈↓USER: ␈↓βCF␈↓


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α,page A5.1␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓PUP: (PUP & USER MAY REFER TO THIS NEW
␈↓ α,␈↓        SPECIALIZED VERSION OF (CONCEPT:FORMATION) AS CF:1)

␈↓ α,␈↓PUP: (THE NAME OF THE PROGRAM TO DO (CONCEPT:FORMATION) IS CF:1)

␈↓ α,␈↓␈↓∧*************************************************************␈↓

␈↓ α,␈↓MOVE CURSOR TO ( CF:1 TYPE OF ( CONCEPT:FORMATION))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓     (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1)
␈↓ α,␈↓     SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓␈↓∧*************************************************************␈↓


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (TEMPORARILY (PARTITION:A:DOMAIN))
␈↓ α,␈↓ OF THE FUNCTION CF:1 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓ BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  NIL OF THE FUNCTION CF:1 TO THIS NEW
␈↓ α,␈↓    PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(CF:1
␈↓ α,␈↓  (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (TEMPORARILY (PAD:2))))

␈↓ α,␈↓(CF:1 redefined)

␈↓ α,␈↓␈↓∧ The␈α
"piece␈α
of␈αcode"␈α
is␈α
now␈α
just␈αthe␈α
META:CODE␈α
of␈αthe␈α
new␈α
BEING␈α
CF:1.␈α Other
␈↓ α,␈↓∧parts␈α⊃have␈α⊃been␈α⊃filled␈α⊃in,␈α⊃so␈α⊃it␈α∩is␈α⊃no␈α⊃longer␈α⊃defined␈α⊃as␈α⊃above.␈α⊃ The␈α∩full,␈α⊃long
␈↓ α,␈↓∧definition␈α∂contains␈α∂much␈α∞bookkeeping␈α∂but␈α∂nothing␈α∂of␈α∞relevance␈α∂to␈α∂tell␈α∂the␈α∞user.
␈↓ α,␈↓∧The␈α∃"function␈α∃call␈α∃NIL"␈α∃mentioned␈α∀above␈α∃indicates␈α∃that␈α∃CF:1␈α∃is␈α∃the␈α∀topmost
␈↓ α,␈↓∧function; it is not called by any other. ␈↓

␈↓ α,␈↓MOVE CURSOR TO ( PAD:2 TYPE OF ( PARTITION:A:DOMAIN))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION:
␈↓ α,␈↓    (PARTITION:BY:TAKE:ELE:AND:CLASS
␈↓ α,␈↓     PARTITION:BY:TAKE:CLASS:GET:ELE
␈↓ α,␈↓     PARTITION:BY:TAKE:ELE:GET:CLASS)
␈↓ α,␈↓SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.2␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓(A .... PARTITION:BY:TAKE:ELE:AND:CLASS)
␈↓ α,␈↓(B .... PARTITION:BY:TAKE:CLASS:GET:ELE)
␈↓ α,␈↓(C .... PARTITION:BY:TAKE:ELE:GET:CLASS)

␈↓ α,␈↓FOR EXAMPLE, (B D) WOULD MEAN THAT THE 2ND AND 4TH ITEMS ARE RELEVANT

␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓


␈↓ α,␈↓␈↓∧<TAKE␈α∂involves␈α∞trivial␈α∂accessing␈α∞or␈α∂reading␈α∞in;␈α∂GET␈α∞involves␈α∂working␈α∂to␈α∞obtain,
␈↓ α,␈↓∧e.g.,␈α∩by␈α∩searching␈α∪or␈α∩computing;␈α∩ELE␈α∪refers␈α∩to␈α∩a␈α∪scene;␈α∩CLASS␈α∩refers␈α∪to␈α∩the
␈↓ α,␈↓∧model of a concept.>␈↓


␈↓ α,␈↓USER: ␈↓β(A C)␈↓

␈↓ α,␈↓AT THIS POINT, I ALMOST RECOMMENDED VIRTUAL STRUCTURING, BUT DECIDED
␈↓ α,␈↓AGAINST IT.  THE LIST STRUCTURE WOULD HAVE BEEN DIVIDED INTO THESE
␈↓ α,␈↓PIECES: (PARTITION:BY:TAKE:ELE:AND:CLASS:PART:OF:NIL
␈↓ α,␈↓         PARTITION:BY:TAKE:ELE:GET:CLASS:PART:OF:NIL)
␈↓ α,␈↓(I GUESS THAT EACH OF THE ABOVE :NIL-S WOULD GET REPLACED BY SOMETHING
␈↓ α,␈↓  LIKE ":PARTITION:LIST")

␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (REPEATEDLY (TAKE:HOLD:OF ELEMENT)
␈↓ α,␈↓              (COND ((IS:OF:TYPE ELEMENT (COMMENT PARTITION:BY:TAKE:ELE:
␈↓ α,␈↓                                                          -AND:CLASS))
␈↓ α,␈↓                     (TAKE:HOLD:OF NAME:OF:CLASS)
␈↓ α,␈↓                     (MODIFY:STRUCTURE NAME:OF:CLASS))
␈↓ α,␈↓                    (T
␈↓ α,␈↓                     (GET:HOLD:OF NAME:OF:CLASS)
␈↓ α,␈↓                     (MODIFY:STRUCTURE NAME:OF:CLASS))))

␈↓ α,␈↓OF THE FUNCTION PAD:2 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( TAKE:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS TAKE:HOLD:OF:3

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( ELEMENT)
␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:4

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( IS:OF:TYPE)
␈↓ α,␈↓THE NAME CHOSEN IS HAS:NAME:5

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( ELEMENT)
␈↓ α,␈↓IS THIS THE SAME AS A ( ELEMENT) WHICH WE'VE ALREADY SEEN AND NAMED?


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.3␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓USER: ␈↓βYES␈↓

␈↓ α,␈↓SINCE ELEMENT:4 IS THE ONLY NAME FOR ( ELEMENT),
␈↓ α,␈↓AT LEAST AS FAR AS PUP KNOWS RIGHT NOW, PUP ASSUMES THAT IS THE ONE
␈↓ α,␈↓YOU WANT. AM I RIGHT?
␈↓ α,␈↓USER: ␈↓βYES␈↓

␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:4

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( TAKE:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS TAKE:HOLD:OF:6

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED
␈↓ α,␈↓        VERSION OF ( MODIFY:STRUCTURE)
␈↓ α,␈↓THE NAME CHOSEN IS MODIFY:STRUCTURE:7

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( GET:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS GET:HOLD:OF:8

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED
␈↓ α,␈↓        VERSION OF ( MODIFY:STRUCTURE)
␈↓ α,␈↓THE NAME CHOSEN IS MODIFY:STRUCTURE:9

␈↓ α,␈↓␈↓∧<from now on, even this level of naming detail will be omitted.>␈↓

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (PAD:2) OF THE FUNCTION PAD:2 TO THIS
␈↓ α,␈↓     NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(PAD:2
␈↓ α,␈↓  (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (PROG NIL
␈↓ α,␈↓      LABEL:1
␈↓ α,␈↓          (TAKE:HOLD:OF:3 ELEMENT:4)
␈↓ α,␈↓          (COND
␈↓ α,␈↓            ((HAS:NAME:5 ELEMENT:4 (COMMENT PARTITION:BY:TAKE:ELE:
␈↓ α,␈↓                                                -AND:CLASS))
␈↓ α,␈↓              (TAKE:HOLD:OF:6 NAME:OF:CLASS)
␈↓ α,␈↓              (MODIFY:STRUCTURE:7 NAME:OF:CLASS))
␈↓ α,␈↓            (T
␈↓ α,␈↓             (GET:HOLD:OF:8 NAME:OF:CLASS)
␈↓ α,␈↓             (MODIFY:STRUCTURE:9 NAME:OF:CLASS)))
␈↓ α,␈↓          (GO LABEL:1)
␈↓ α,␈↓          (COMMENT INFINITE LOOP IN THIS PROG))))

␈↓ α,␈↓(PAD:2 redefined) ␈↓∧<as a BEING>␈↓

␈↓ α,␈↓MOVE CURSOR TO ( ELEMENT:4 TYPE OF ( ELEMENT))


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.4␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DEFINITION
␈↓ α,␈↓   DECISION: (WHAT IS AN ELEMENT)
␈↓ α,␈↓SINCE THE QUESTION IS ONE OF DEFINITION, PLEASE JUST
␈↓ α,␈↓TYPE IN THE DEFINITION OF ELEMENT:4

␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?  ␈↓βNO␈↓  ␈↓∧<henceforth, this will be omitted>␈↓

␈↓ α,␈↓USER: ␈↓β(A DESCRIPTION OF A STATIC SCENE)␈↓

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (ELEMENT:4 (COMMENT PARTITION:BY:TAKE:
␈↓ α,␈↓                                                    -ELE:AND:CLASS))
␈↓ α,␈↓ OF THE FUNCTION ELEMENT:4 TO THIS NEW PIECE OF CODE,
␈↓ α,␈↓ WHICH IS ITS BODY:

␈↓ α,␈↓(ELEMENT:4
␈↓ α,␈↓  (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (STRUCTURE (OBJECTS SET O)
␈↓ α,␈↓               (CLASS:NAME NAME N)
␈↓ α,␈↓               (STATIC RELATIONS S BETWEEN OBJECTS))))
␈↓ α,␈↓(ELEMENT:4 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( HAS:NAME:5 TYPE OF ( IS:OF:TYPE))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DEFINITION
␈↓ α,␈↓  DECISION: (HOW DO WE KNOW WHEN THE 'IS:OF:TYPE'
␈↓ α,␈↓             PREDICATE IS TRUE, AND WHEN IT IS FALSE?
␈↓ α,␈↓             PUP ASSUMES THAT USER WILL TYPE IN A
␈↓ α,␈↓             LOGICAL SENTENCE WHOSE TRUTH IS EQUIVALENT
␈↓ α,␈↓             TO IT)
␈↓ α,␈↓ SINCE THE QUESTION IS ONE OF DEFINITION, PLEASE JUST
␈↓ α,␈↓ TYPE IN THE DEFINITION OF HAS:NAME:5

␈↓ α,␈↓ SINCE THIS IS A PREDICATE, THE EXPRESSION YOU TYPE IN SHOULD BE A
␈↓ α,␈↓ LOGICAL EXPRESSION, WHICH IS TRUE IF ELEMENT:4 IS OF
␈↓ α,␈↓ THE (PARTITION:BY:TAKE:ELE:AND:CLASS) TYPE,
␈↓ α,␈↓ AND SHOULD BE FALSE IF IT ISNT
␈↓ α,␈↓ OF THAT TYPE.

␈↓ α,␈↓USER: ␈↓β(THE FRONT PART OF ARG1 ISNT ???)␈↓

␈↓ α,␈↓(IS ??? A LITERAL CONSTANT (WHOSE VALUE SHOULD BE ITSELF) (REPLY YES OR
␈↓ α,␈↓   NO, PLEASE) USER...)
␈↓ α,␈↓␈↓βYES␈↓

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (HAS:NAME:5 ELEMENT:4 (COMMENT PARTI
␈↓ α,␈↓  -TION:BY:TAKE:ELE:AND:CLASS)) OF THE FUNCTION HAS:NAME:5 TO THIS NEW
␈↓ α,␈↓  PIECE OF CODE, WHICH IS ITS BODY:


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.5␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓(HAS:NAME:5
␈↓ α,␈↓  (LAMBDA (ARG1 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓    (NOT (EQUAL (CAR ARG1)
␈↓ α,␈↓                ???))))


␈↓ α,␈↓(HAS:NAME:5 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( TAKE:HOLD:OF:3 TYPE OF ( TAKE:HOLD:OF))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECISION:
␈↓ α,␈↓       ...HMMM...

␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!

␈↓ α,␈↓(PUP IS ABOUT TO ENCODE AN ASSIGNMENT: (OBJECTS SET O) WILL BE SET TO
␈↓ α,␈↓         SOME PART OF ARG1 WHICH IS GOING TO BE
␈↓ α,␈↓         INSTANTIATED DURING THE RUNNING OF THE PROGRAM AS ELEMENT:4
␈↓ α,␈↓         PUP WANTS A NAME FOR THIS 'SOME PART OF' FUNCTION.)

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (TAKE:HOLD:OF:3 ELEMENT:4) OF THE
␈↓ α,␈↓  FUNCTION TAKE:HOLD:OF:3 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(TAKE:HOLD:OF:3
␈↓ α,␈↓  (NLAMBDA (ARG1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓    (PRINT (COMMENT READY TO ACCEPT BRAND NEW ELEMENT:4))
␈↓ α,␈↓    (SET ARG1 (READ))
␈↓ α,␈↓    (SETQ ELEMENT:OBJECTS:11 (SOME:PART:OF:12 (EVAL ARG1)))
␈↓ α,␈↓    (SETQ ELEMENT:CLASSNAME:13 (SOME:PART:OF:14 (EVAL ARG1)))
␈↓ α,␈↓    (SETQ ELEMENT:RELNS:15 (SOME:PART:OF:16 (EVAL ARG1)))
␈↓ α,␈↓    T))

␈↓ α,␈↓(COMMENT NAME:OF:CLASS IS NOT A BEING YET)

␈↓ α,␈↓MOVE CURSOR TO ( TAKE:HOLD:OF:6 TYPE OF ( TAKE:HOLD:OF))

␈↓ α,␈↓(THE ASSIGNMENT WHICH SET NAME:OF:CLASS
␈↓ α,␈↓   WAS DONE EARLIER; SHOULD A NEW VALUE OF
␈↓ α,␈↓   NAME:OF:CLASS BE READ IN AT THIS POINT IN
␈↓ α,␈↓   THE PROGRAM FLOW? USER...)
␈↓ α,␈↓␈↓βNO␈↓

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (TAKE:HOLD:OF:6 NAME:OF:CLASS) OF THE
␈↓ α,␈↓   FUNCTION TAKE:HOLD:OF:6 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.6␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓(TAKE:HOLD:OF:6
␈↓ α,␈↓  (NLAMBDA (ARG1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS NAME:OF:CLASS)
␈↓ α,␈↓    (COMMENT NOTHING MUCH TO DO HERE; JUST ONE SIMPLE ASSIGNMENT
␈↓ α,␈↓                                    TO AN ALREADY EXISTING VALUE)
␈↓ α,␈↓    (SET ARG1 OBVIOUS:KNOWN:VALUE:OF:NAME:OF:CLASS)))

␈↓ α,␈↓MOVE CURSOR TO ( GET:HOLD:OF:8 TYPE OF ( GET:HOLD:OF))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION:
␈↓ α,␈↓    (COMPUTE SEARCH GENERATE:AND:TEST)
␈↓ α,␈↓SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... COMPUTE)
␈↓ α,␈↓(B .... SEARCH)
␈↓ α,␈↓(C .... GENERATE:AND:TEST)

␈↓ α,␈↓USER: ␈↓β(B)␈↓


␈↓ α,␈↓YOU MUST GIVE ME A LIST OF ALL THE VALUES THAT COULD EVER OCCUR AS
␈↓ α,␈↓NAMES ON THE LIST STRUCTURE SET:OF:POSSIBLE:NAMES:OF:CLASS

␈↓ α,␈↓IF THIS ISN'T MEANINGFUL, REPLY NIL.

␈↓ α,␈↓USER: ␈↓βNIL␈↓

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓     (DOES AN ALGORITHM ALREADY EXIST WHICH GETS
␈↓ α,␈↓      PRECISELY NAME:OF:CLASS)
␈↓ α,␈↓ SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (PROGN (FOREACH POSSIBLE:NAME:OF:CLASS IN SET:OF:POSSIBLE:NAMES:OF:CLASS
␈↓ α,␈↓          DO      (TEST POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓                       (COMMENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓         (PRIN1 "
␈↓ α,␈↓                 MY GUESS FOR THIS IS ")
␈↓ α,␈↓         (PRINT POSSIBLE:NAME:OF:CLASS))

␈↓ α,␈↓OF THE FUNCTION GET:HOLD:OF:8 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓MOVE CURSOR TO ( FOREACH:17 TYPE OF ( FOREACH))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.7␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓     (I ASSUME THAT I STOP AFTER EXAMINING ALL
␈↓ α,␈↓      POSSIBLE:NAMES:OF:CLASS IN SET:OF:POSSIBLE:NAMES:OF:CLASS ;
␈↓ α,␈↓      DO I ALSO STOP AFTER SOME CONDITION 'C' BECOMES TRUE?)
␈↓ α,␈↓SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βYES␈↓

␈↓ α,␈↓PLEASE TYPE IN A PREDICATE EQUIVALENT TO THIS UNTIL CONDITION 'C'.

␈↓ α,␈↓USER: ␈↓β(TEST:18 SUCCEEDED)␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (FOREACH:17 POSSIBLE:NAME:OF:CLASS IN
␈↓ α,␈↓     SET:OF:POSSIBLE:NAMES:OF:CLASS DO (TEST:18 POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓     (COMMENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓    OF THE FUNCTION FOREACH:17
␈↓ α,␈↓    TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(FOREACH:17
␈↓ α,␈↓  (NLAMBDA (ARG1 DUMMY:ARGUMENT:2 ARG3 DUMMY:ARGUMENT:1 ARG5)
␈↓ α,␈↓      (COMMENT IN ALL CALLS TO DATE, ARG1 IS BOUND
␈↓ α,␈↓                        TO POSSIBLE:NAME:OF:CLASS)
␈↓ α,␈↓      (COMMENT IN ALL CALLS TO DATE, ARG3 IS BOUND
␈↓ α,␈↓                        TO SET:OF:POSSIBLE:NAMES:OF:CLASS)
␈↓ α,␈↓      (COMMENT IN ALL CALLS TO DATE, ARG5 IS BOUND
␈↓ α,␈↓                        TO (COMMENT TEST:18 POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓                             (COMMENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓      (PROG (RESULT:1)
␈↓ α,␈↓            (SETQ EVAL:ARG3 (EVAL ARG3))
␈↓ α,␈↓          LABEL:2
␈↓ α,␈↓            (COND
␈↓ α,␈↓              ((NULL EVAL:ARG3)
␈↓ α,␈↓                (SET ARG1 FAILURE:VALUE)
␈↓ α,␈↓                (RETURN EXHAUSTION:VALUE)))
␈↓ α,␈↓            (SET ARG1 (CAR EVAL:ARG3))
␈↓ α,␈↓            (SETQ EVAL:ARG3 (CDR EVAL:ARG3))
␈↓ α,␈↓            (SETQ RESULT:1 (EVAL ARG5))
␈↓ α,␈↓            (COND
␈↓ α,␈↓              ((NOT (EQUAL RESULT:1 NIL))     ␈↓∧<This predicate is the
␈↓ α,␈↓∧                                                translation of␈↓ ␈↓βTEST:18 SUCCEEDED␈↓␈↓∧.>␈↓
␈↓ α,␈↓                (RETURN UNTIL:CONDITION:VALUE))
␈↓ α,␈↓              (T (GO LABEL:2)))
␈↓ α,␈↓            (COMMENT AT THE TIME THAT FOREACH:17 WAS CODED, THE UNTIL
␈↓ α,␈↓                                CONDITION VALUE WAS LEFT UNDEFINED))))

␈↓ α,␈↓MOVE CURSOR TO ( TEST:18 TYPE OF ( TEST))


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.8␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓     (SHOULD WE IMPLEMENT ERROR RECOVERY IN ANY
␈↓ α,␈↓      FANCY WAY)
␈↓ α,␈↓SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.

␈↓ α,␈↓␈↓βNO␈↓

␈↓ α,␈↓NOTHING TO DO AT THIS TIME, THEN.

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECISION:
␈↓ α,␈↓       (( THE TESTING MAY HAVE THE CHARACTER
␈↓ α,␈↓          OF COMPARING THE OBJECT WITH SOME DISTINGUISHED OBJECT)
␈↓ α,␈↓        ( TESTING MAY HAVE THE CHARACTER OF LETTING THE OBJECT
␈↓ α,␈↓          (WHICH IS ARG1) COMPETE WITH ITS FELLOW OBJECTS
␈↓ α,␈↓          FOR SUPREMACY)
␈↓ α,␈↓  ABOVE, ARG1 REFERS TO POSSIBLE:NAME:OF:CLASS )

␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!

␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (COMPARE ARG1 ELEMENT:4)


␈↓ α,␈↓OF THE FUNCTION TEST:18 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (COMPARE:19 ARG1 ELEMENT:4) OF THE
␈↓ α,␈↓  FUNCTION COMPARE:19 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(COMPARE:19
␈↓ α,␈↓  (LAMBDA (ARG1 ARG2)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS POSSIBLE:NAME:
␈↓ α,␈↓                                                                -OF:CLASS)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓    ARG1
␈↓ α,␈↓    ARG2
␈↓ α,␈↓    (COMMENT ARG1 AND ARG2 ARE HERE SIMPLY TO CAUSE PUP
␈↓ α,␈↓     TO STICK IN COMMENTS ABOUT THEIR INSTANTIATION)
␈↓ α,␈↓    (JOIN:23 (COMPARE:24 POSSIBLE:NAME:OF:CLASS:OBJECTS:20
␈↓ α,␈↓                         ELEMENT:OBJECTS:11)
␈↓ α,␈↓             (COMPARE:25 POSSIBLE:NAME:OF:CLASS:CLASSNAME:21
␈↓ α,␈↓                         ELEMENT:CLASSNAME:13)
␈↓ α,␈↓             (COMPARE:26 POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓                         ELEMENT:RELNS:15))))


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.9␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓∧Here␈αbegins␈αone␈αof␈αthe␈αsections␈α
discussed␈αon␈αpage␈α19␈αof␈αthis␈αpaper,␈α
the␈αgenesis
␈↓ α,␈↓∧of␈α∃the␈α∀MUSTNOT/MUST/MAY␈α∃divisions.␈α∀ The␈α∃names␈α∀used␈α∃here␈α∃differ␈α∀slightly
␈↓ α,␈↓∧from those in the body of the paper.  The symbol # stands for "contradiction".␈↓

␈↓ α,␈↓MOVE CURSOR TO ( JOIN:23 TYPE OF ( JOINING:FUNCTION))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS PREDICATE DECISION:
␈↓ α,␈↓       (WHEN WE TERMINATE THE LOOP)

␈↓ α,␈↓PLEASE TYPE IN A LOGICAL EXPRESSION WHICH IS TRUE ( WHEN WE TERMINATE
␈↓ α,␈↓       THE LOOP) AND IS FALSE OTHERWISE.

␈↓ α,␈↓USER: ␈↓β(ANY RELATION IN POSSIBLE:NAME:OF:CLASS:RELNS:22 IS INCOMPATIBLE
␈↓ α,␈↓β    WITH ELEMENT:RELNS:15)␈↓

␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (AND ARG1 ARG2 ARG3)          ␈↓∧<The inference here, from the last user
␈↓ α,␈↓∧                                       response. is that the joining function is AND.>␈↓

␈↓ α,␈↓OF THE FUNCTION JOIN:23 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL OF THE FUNCTION JOIN:23 TO THIS NEW
␈↓ α,␈↓     PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(JOIN:23
␈↓ α,␈↓  (LAMBDA (ARG1 ARG2 ARG3)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS
␈↓ α,␈↓       COMPARE:24  POSSIBLE:NAME:OF:CLASS:OBJECTS:20   ELEMENT:OBJECTS:11))
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS
␈↓ α,␈↓       COMPARE:25  POSSIBLE:NAME:OF:CLASS:CLASSNAME:21 ELEMENT:CLASSNAME:13))
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG3 IS INSTANTIATED AS
␈↓ α,␈↓       COMPARE:26  POSSIBLE:NAME:OF:CLASS:RELNS:22 ELEMENT:RELNS:15))
␈↓ α,␈↓    (AND ARG1 ARG2 ARG3)))

␈↓ α,␈↓(COMMENT POSSIBLE:NAME:OF:CLASS:OBJECTS:20 IS NOT A BEING YET)
␈↓ α,␈↓(COMMENT ELEMENT:OBJECTS:11 IS NOT A BEING YET)

␈↓ α,␈↓MOVE CURSOR TO ( COMPARE:26 TYPE OF ( COMPARE))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECISION:
␈↓ α,␈↓       (( COMPARING MAY INVOLVE A FUNCTION
␈↓ α,␈↓            APPLIED DIRECTLY TO THE TWO ARGUMENTS)
␈↓ α,␈↓        ( COMPARING MAY INVOLVE APPLYING A
␈↓ α,␈↓            FUNCTION TO CORRESPONDING PAIRS OF
␈↓ α,␈↓            SUBPARTS OF THE OBJECTS, AND FINALLY
␈↓ α,␈↓            JOINING TOGETHER ALL THESE
␈↓ α,␈↓            SUB-COMPARISONS' RESULTS)
␈↓ α,␈↓ (ABOVE, ARG1 REFERS TO

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.10␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓                 POSSIBLE:NAME:OF:CLASS:RELNS:22)

␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!

␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (PROGN (COMMENT HERE WE MAY LATER WANT TO PUT SOME ASSIGNMENTS,
␈↓ α,␈↓                                REWRITES, AND ITERATIVE STATEMENTS)
␈↓ α,␈↓         (COND ((NOT (FORSOME RELATION IN POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓                             (RECOGNIZE:# RELATION ELEMENT:RELNS:15)))
␈↓ α,␈↓                T)
␈↓ α,␈↓               (T NIL)))

␈↓ α,␈↓OF THE FUNCTION COMPARE:26 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓MOVE CURSOR TO ( CONTRADICTS:27 TYPE OF ( RECOGNIZE:#))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION:
␈↓ α,␈↓    (PROBABILITY=1:#
␈↓ α,␈↓     PROBABILITY=0:#
␈↓ α,␈↓     PROBABILITY>0&<1:#)
␈↓ α,␈↓ SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... PROBABILITY=1:#)
␈↓ α,␈↓(B .... PROBABILITY=0:#)
␈↓ α,␈↓(C .... PROBABILITY>0&<1:#)

␈↓ α,␈↓USER: ␈↓β(A B C)␈↓


␈↓ α,␈↓(I RECOMMEND THAT POSSIBLE:NAME:OF:CLASS:RELNS:22 BE STRUCTURED INTO (AT
␈↓ α,␈↓    LEAST ALONG ONE DIMENSION) THESE 3 PIECES:
␈↓ α,␈↓ (PROBABILITY=1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓  PROBABILITY=0:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓  PROBABILITY>0&<1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22) .
␈↓ α,␈↓PLEASE TYPE BACK YES, NO, OR UNSURE.)

␈↓ α,␈↓USER: ␈↓βYES␈↓


␈↓ α,␈↓␈↓∧        <The Long-Name-Demon now grumbles about these awkward names.>␈↓

␈↓ α,␈↓I WANT A SHORTER NAME FOR
␈↓ α,␈↓         PROBABILITY:1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS.
␈↓ α,␈↓PLEASE TYPE A BRAND NEW NAME IN TO ME.

␈↓ α,␈↓USER: ␈↓βYES:RELNS␈↓

␈↓ α,␈↓THE NAME CHOSEN IS YES:RELNS:28

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.11␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓ .

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL
␈↓ α,␈↓                (CONTRADICTS:27 RELATION ELEMENT:RELNS:15)
␈↓ α,␈↓        OF THE FUNCTION CONTRADICTS:27 TO THIS NEW PIECE OF CODE, WHICH
␈↓ α,␈↓        IS ITS BODY:

␈↓ α,␈↓(CONTRADICTS:27
␈↓ α,␈↓  (LAMBDA (ARG1 ARG2)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS RELATION)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS ELEMENT:RELNS:15)
␈↓ α,␈↓    (COND
␈↓ α,␈↓      ((MEMBER ARG1 YES:RELNS:28)
␈↓ α,␈↓        (COMMENT ARG1 OCCURS WITH PROBABILITY 1, SO IT HAD
␈↓ α,␈↓                    BETTER BE IN ARG2, WHICH IS
␈↓ α,␈↓                    THE RELEVANT PIECE OF THE WORLD)
␈↓ α,␈↓        (NOT (MEMBER ARG1 ARG2)))
␈↓ α,␈↓      ((MEMBER ARG1 NO:RELNS:29)
␈↓ α,␈↓        (COMMENT SINCE ARG1 SHOULD NEVER OCCUR, WE HAVE A
␈↓ α,␈↓                    CONTRADICTION IFF IT IS A
␈↓ α,␈↓                    MEMBER OF  ARG2, WHICH IS
␈↓ α,␈↓                    THE RELEVANT PIECE OF THE WORLD)
␈↓ α,␈↓         (MEMBER ARG1 ARG2))
␈↓ α,␈↓      (T (COMMENT WE MAY OR MAY NOT HAVE ARG1 IN ARG2; EITHER
␈↓ α,␈↓                    CASE IS ALLOWABLE; SO WE
␈↓ α,␈↓                    NEVER HAVE A CONTRADICTION)
␈↓ α,␈↓        NIL))))

␈↓ α,␈↓PUP: (PUP WORKED ON SOMETHING IMPROBABLE, NAMELY (IN ALL CODE GENERATED,
␈↓ α,␈↓            POSSIBLE:NAME:OF:CLASS:RELNS:22 SHOULD BE
␈↓ α,␈↓            REPLACED BY (APPEND YES:RELNS:28 NO:RELNS:29 MAYBE:RELNS:30)),
␈↓ α,␈↓     AND HERE IS WHAT WE FINALLY DID ABOUT IT: (WE REPLACED
␈↓ α,␈↓             ALL OCCURRENCES OF POSSIBLE:NAME:OF:CLASS:RELNS:22 BY
␈↓ α,␈↓             (APPEND YES:RELNS:28 NO:RELNS:29 MAYBE:RELNS:30)))


␈↓ α,␈↓MOVE CURSOR TO ( MODIFY:STRUCTURE:7 TYPE OF ( MODIFY:STRUCTURE))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SUBSETOF DECISION:
␈↓ α,␈↓      (CONDITIONAL:INSERTION
␈↓ α,␈↓       CONDITIONAL:DELETION
␈↓ α,␈↓       COMPLEX:ALTERATION)
␈↓ α,␈↓ SINCE THE DECISION IS SUBSET:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... CONDITIONAL:INSERTION)
␈↓ α,␈↓(B .... CONDITIONAL:DELETION)
␈↓ α,␈↓(C .... COMPLEX:ALTERATION)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.12␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓USER: ␈↓β(A C)␈↓

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (MODIFY:STRUCTURE:7 NAME:OF:CLASS) OF
␈↓ α,␈↓     THE FUNCTION MODIFY:STRUCTURE:7 TO THIS NEW PIECE OF CODE, WHICH IS
␈↓ α,␈↓     ITS BODY:

␈↓ α,␈↓(MODIFY:STRUCTURE:7
␈↓ α,␈↓  (LAMBDA (ARG1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS NAME:OF:CLASS)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS NIL)
␈↓ α,␈↓    (CONDITIONAL:INSERTION:31 ARG1 ARG2)
␈↓ α,␈↓    (COMPLEX:ALTERATION:32 ARG1 ARG2)))

␈↓ α,␈↓I HAVE DECIDED TO KEEP POSSIBLE:NAME:OF:CLASS STRUCTURED
␈↓ α,␈↓        USING THE PROPERTY LIST FEATURE OF LISP.
␈↓ α,␈↓   FOR THIS REASON, I NEED TO HAVE A NAME FOR EACH
␈↓ α,␈↓   PROPERTY (CORRESPONDING TO EACH SUBPART OF POSSIBLE:NAME:OF:CLASS) :

␈↓ α,␈↓␈↓∧<This is the end of the example fragments of dialogue>␈↓

␈↓ α,␈↓␈↓∧Below␈α∞is␈α
the␈α∞same␈α
piece␈α∞of␈α
dialogue␈α∞set␈α
off␈α∞by␈α
lines␈α∞of␈α
asterisks␈α∞on␈α∞page␈α
A5.2.
␈↓ α,␈↓∧It␈α⊃occupied␈α∩only␈α⊃seven␈α⊃lines␈α∩of␈α⊃the␈α⊃preceding␈α∩excerpt,␈α⊃but␈α⊃below␈α∩it␈α⊃occupies
␈↓ α,␈↓∧eight␈α∪pages.␈α∪The␈α∀user␈α∪may␈α∪interrupt␈α∪after␈α∀each␈α∪BEING␈α∪receives␈α∀control,␈α∪and
␈↓ α,␈↓∧often␈α∪does.␈α∀When␈α∪in␈α∪an␈α∀interrupt,␈α∪the␈α∀user␈α∪is␈α∪prompted␈α∀by␈↓␈α∪REQUEST:␈α∀␈↓∧,␈α∪after
␈↓ α,␈↓∧which␈α∞he␈α∞may␈α∂type␈α∞in␈α∞a␈α∞query.␈α∂This␈α∞will␈α∞typically␈α∞be␈α∂the␈α∞name␈α∞of␈α∞a␈α∂BEING␈α∞part,
␈↓ α,␈↓∧which␈α∂is␈α⊂then␈α∂"asked"␈α⊂of␈α∂the␈α⊂current␈α∂BEING.␈α∂ The␈α⊂active␈α∂BEINGs␈α⊂are␈α∂kept␈α⊂on␈α∂a
␈↓ α,␈↓∧stack,␈α⊂and␈α⊂typing␈α⊃CH␈α⊂will␈α⊂print␈α⊃out␈α⊂this␈α⊂stack.␈α⊃Typing␈α⊂OLDER␈α⊂or␈α⊃YOUNGER␈α⊂lets
␈↓ α,␈↓∧the␈α∞user␈α∂crawl␈α∞around␈α∂this␈α∞stack;␈α∞the␈α∂question␈α∞he␈α∂types␈α∞in␈α∞is␈α∂by␈α∞default␈α∂put␈α∞to
␈↓ α,␈↓∧the␈α∪BEING␈α∪indicated␈α∪by␈α∪the␈α∀stack␈α∪marker␈α∪(when␈α∪printed,␈α∪this␈α∪BEING␈α∀name␈α∪is
␈↓ α,␈↓∧surrounded by asterisks). ␈↓

␈↓ α,␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** CHOOSE:FROM *** (WRITE:PROGRAM SERVE)
␈↓ α,␈↓␈↓∧This last request, CH, asked PUP6 to type out the control history;
␈↓ α,␈↓∧who called who, etc.  In the current case, this is simply a stack.
␈↓ α,␈↓∧The present BEING is CHOOSE:FROM, and it is delimited by asterisks.
␈↓ α,␈↓∧It was called by WRITE:PROGRAM which was called by SERVE.␈↓

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(CHOOSE THE BEST BEING FROM THE SET (OBTAIN:USABLE:INFORMATION
␈↓ α,␈↓                                       USE:INFORMATION
␈↓ α,␈↓                                       FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓                                       CLARIFY:IMPROBABLE:SITUATION
␈↓ α,␈↓                                       ADAPT:PRECONCEIVED:FUNCTION
␈↓ α,␈↓                                       FIX:INCORRECT:PIECE )

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.13␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓                        OF BEINGS)

␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE THE FLOW OF CONTROL OF A PROGRAM MUST BE DETERMINATE)

␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓WRITE:PROGRAM

␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM) *** WRITE:PROGRAM *** (SERVE)

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(WRITE A PROGRAM WHICH DOES (CONCEPT:FORMATION))
␈↓ α,␈↓␈↓∧    <notice the effect of saying␈↓ ␈↓βOLDER␈↓ ␈↓∧; questions are now
␈↓ α,␈↓∧        directed to WRITE:PROGRAM instead of to CHOOSE:FROM.>␈↓

␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(FUNDAMENTAL DRIVE TO OBEY USER; ALSO, IT IS NECESSARY THAT CODE BE
␈↓ α,␈↓                      WRITTEN TO DO (CONCEPT:FORMATION) IN ORDER THAT
␈↓ α,␈↓                      THE TASK (CONCEPT:FORMATION) MIGHT BE COMPLETED;
␈↓ α,␈↓                      ALSO, EXAMINE SPEC:WHY)

␈↓ α,␈↓REQUEST: ␈↓βSPEC:WHY
␈↓ α,␈↓β␈↓(WE CALL THE FIRST BEING WHICH CAN BRING ABOUT THE EFFECT
␈↓ α,␈↓                        (TYPE OF((CONCEPT:FORMATION) HAS BEEN STUDIED)))

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(CREATE SPECIALIZED LISP CODE WHICH WILL DO (CONCEPT:FORMATION))

␈↓ α,␈↓REQUEST: ␈↓β?
␈↓ α,␈↓ YOUR OPTIONS ARE AS FOLLOWS:

␈↓ α,␈↓QUIT    END THE INTERRUPT
␈↓ α,␈↓BEING   PRINT NAME OF CURRENT BEING
␈↓ α,␈↓DEMONS  PRINT SET OF DEMONS CURRENTLY ACTIVE
␈↓ α,␈↓CONTROL:HISTORY    PRINT LIST OF BEINGS IN CONTROL, THE PATH FROM THE
␈↓ α,␈↓                   CURRENT BEING BACK TO THE BEGINNING OF THE PROGRAM
␈↓ α,␈↓OLDER   CONSIDER THE BEING WHICH CALLED THE CURRENT ONE
␈↓ α,␈↓YOUNGER CONSIDER THE BEING WHICH THE CURRENT ONE CALLED
␈↓ α,␈↓OLDEST  CONSIDER THE FIRST BEING IN CONTROL
␈↓ α,␈↓YOUNGEST    CONSIDER THE LAST BEING IN CONTROL
␈↓ α,␈↓SPEC:WHEN   AN EVALUATED VERSION OF 'WHEN'
␈↓ α,␈↓FAIL   END THE INTERRUPT AND CAUSE CURRENT BEING TO FAIL
␈↓ α,␈↓NEW:LEVEL   CHANGE THE USER:INTERRUPT LEVEL
␈↓ α,␈↓SPEC:WHY   PRINT OUT THE SPECIFIC REASON(S) THAT THIS BEING WAS

␈↓ α,␈↓TYPING ONE OF THESE WILL PRINT OUT WRITE:PROGRAM'S ANSWER TO THAT
␈↓ α,␈↓        QUESTION:

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.14␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓(IDEN IMPLICIT:ARGS EXPLICIT:ARGS EXPLICIT:ARGS:CHECK NLAMBDA
␈↓ α,␈↓ NON:EVAL:ARGS WHAT HOW WHY SPEC:WHY MAIN:EFFECTS MINOR:EFFECTS WHEN
␈↓ α,␈↓ META:CODE COMMENTS PRE:REQUISITES CO:REQUISITES POST:REQUISITES DEMONS
␈↓ α,␈↓ AFFECTS COMPLEXITY:VECTOR GENERALIZATIONS SPECIALIZATIONS ALTERNATIVES
␈↓ α,␈↓ PREDICATE DATA:STRUCTURE ENCODABLE INHIBIT:CURRENT:DEMONS FORM:CHANGING)

␈↓ α,␈↓REQUEST: ␈↓βSPEC:WHEN
␈↓ α,␈↓β␈↓((T IS T SO WE DO ADD IN THE WEIGHT (COND ((MEMBER TASK ABLE:PUP:LIST)
␈↓ α,␈↓                                               -75) (T 40))
␈↓ α,␈↓                        WHICH IN THE CURRENT CASE IS 40;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE A PRE:EXISTING ABILITY TO DO
␈↓ α,␈↓                        (CONCEPT:FORMATION) IMPLIES THAT WRITING A NEW
␈↓ α,␈↓                        PROGRAM TO ACCOMPLISH IT IS SUPERFLUOUS AND,
␈↓ α,␈↓                        CONVERSELY, THE INABILITY TO
␈↓ α,␈↓                        DO ( CONCEPT:FORMATION) ABDUCTIVELY
␈↓ α,␈↓                        ENCOURAGES US THAT WE ARE ON THE RIGHT TRACK))
␈↓ α,␈↓ ((MEMBER TASK WRITTEN:PROGRAMS:LIST) IS NIL, SO WE DONT ADD IN THE
␈↓ α,␈↓                        WEIGHT -80 WHICH IN THE CURRENT CASE IS -80 ;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE WE ARE NOT MUCH AFTER EFFICIENCY, AND
␈↓ α,␈↓                        IF A PROGRAM ALREADY EXISTS, THEN WE SHOULD USE IT))
␈↓ α,␈↓ ((MEMBER ( PUP IS ABOUT TO WRITE A PROGRAM TO DO (TASK)) AWARE:USER:LIST)
␈↓ α,␈↓                        IS NIL SO WE DONT ADD IN THE WEIGHT 70
␈↓ α,␈↓                        WHICH IN THE CURRENT CASE IS 70 ;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE WE GO BY THE OLD
␈↓ α,␈↓                        ENGLISH LEGAL RULE THAT SILENCE SIGNIFIES APPROVAL))
␈↓ α,␈↓ (T IS T SO WE DO ADD IN THE WEIGHT  (COND (NEW:INFO:LIST -120)
␈↓ α,␈↓                        (T 40)) WHICH IN THE CURRENT CASE IS 40 ;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE WE SHOULD USE UP THE NEW INFORMATION BEFORE
␈↓ α,␈↓                        WRITING PROGRAMS .
␈↓ α,␈↓                        ALSO: BECAUSE IF NO NEW INFO IS PRESENT,
␈↓ α,␈↓                        THEN WE NEEDN'T FEEL GUILTY ABOUT STARTING TO WRITE
␈↓ α,␈↓                        A PROGRAM)))
␈↓ α,␈↓(THE FINAL WHEN VALUE IS THUS 80)

␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM) *** WRITE:PROGRAM *** (SERVE)

␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓SERVE

␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM WRITE:PROGRAM) *** SERVE *** NIL

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(DO ANYTHING THE USER ASKS)

␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(FUNDAMENTAL DRIVE TO SERVE THE USER)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.15␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(GET A TASK FROM THE USER)

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βY
␈↓ α,␈↓WRONG;  TYPE  YES   OR    NO   ......... INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βBEING
␈↓ α,␈↓β␈↓BETTER    ␈↓∧<i.e., the name of the BEING now in control is "BETTER">␈↓

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(DECIDE WHICH OF (USE:INFORMATION (QUOTE PGM))
␈↓ α,␈↓                 (OBTAIN USABLE INFORMATION (QUOTE PGM))
␈↓ α,␈↓       IS MORE A PROPOS TO TRY)

␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(PUP CAN ONLY TRY AT MOST ONE OF USE:INFORMATION AND
␈↓ α,␈↓        OBTAIN:USABLE:INFORMATION AT A TIME)

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(COMPARE THE WHEN PARTS OF USE:INFORMATION AND OBTAIN:USABLE:INFORMATION
␈↓ α,␈↓        AND, IF NECESSARY, COMPARE THEIR COMPLEXITY VECTORS)

␈↓ α,␈↓REQUEST: ␈↓βCOMPLEXITY:VECTOR
␈↓ α,␈↓β␈↓(.5 .5 .5 .5 .1)

␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** BETTER *** (CHOOSE:FROM WRITE:PROGRAM SERVE)

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(SATISFY THE SIMPLE SUBGOAL (TYPE OF ((CONCEPT:FORMATION) HAS BEEN
␈↓ α,␈↓                                  STUDIED)))

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(PASS CONTROL TO THE SIMPLEST SUFFICIENT BEING)

␈↓ α,␈↓REQUEST: ␈↓βAFFECTS
␈↓ α,␈↓β␈↓(((STUDY:TYPE (CONCEPT:FORMATION)) POSSIBLE:CALLED)
␈↓ α,␈↓  (TRY:BEING CALLED)
␈↓ α,␈↓  (SORT CALLED)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.16␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓  (A:BEING:ORDER CALLED))

␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** SATISFY *** (FILL:IN:UNDEFINED:SECTION CHOOSE:FROM WRITE:PROGRAM
␈↓ α,␈↓                         SERVE)

␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓FILL:IN:UNDEFINED:SECTION

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(FILL IN AN UNDEFINED SECTION OF CODE AND ADD IT TO THE PROGRAM PGM)

␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE ALL PIECES OF CODE MUST BE DEFINED OR THE PROGRAM WONT RUN)

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(CHOOSE THE SIMPLEST UNDEFINED PIECE AND ENCODE IT)

␈↓ α,␈↓REQUEST: ␈↓βCHOICE
␈↓ α,␈↓β␈↓( CF:1 TYPE OF ( CONCEPT:FORMATION))

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βBEING
␈↓ α,␈↓β␈↓REINVESTIGATE:DECISION

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(RESOLVE THE DECISION
␈↓ α,␈↓     (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1)
␈↓ α,␈↓      AFFECTS (WHETHER PARAMETERS
␈↓ α,␈↓               DESCRIBING AN INDIVIDUAL MUST BE READ IN BY CF:1)
␈↓ α,␈↓      WHEN (BEFORE ANY ROUTINES ARE FINALIZED)
␈↓ α,␈↓      WHY (BECAUSE ANY PROCESSING
␈↓ α,␈↓           ROUTINE MAY HAVE TO DEPEND UPON SOME INDIVIDUAL PARAMETERS))
␈↓ α,␈↓   BECAUSE (SETINTERSECTION UNDEFINED:SECTION:LIST DOING:PUP:LIST)
␈↓ α,␈↓         IS NOW NONNULL; FIRST TRY TO DEFER IT A LITTLE LONGER)

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(TRY TO DEFER UNTIL ;ELSE TRY TO RESOLVE IT WITH PRESENT KNOWLEDGE ;
␈↓ α,␈↓   ELSE ASK THE USER TO RESOLVE IT)

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH

␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.17␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓β␈↓NIL *** DEFER:DECISION *** (REINVESTIGATE:DECISION FILL:IN:UNDEFINED:S-
␈↓ α,␈↓                              -ECTION CHOOSE:FROM WRITE:PROGRAM SERVE)

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** UTILIZE *** (WHEN:NEXT DEFER:DECISION REINVESTIGATE:DECISION
␈↓ α,␈↓                          FILL:IN:UNDEFINED:SECTION CHOOSE:FROM
␈↓ α,␈↓                          WRITE:PROGRAM SERVE)

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(SEARCH THROUGH NIL FOR APPLICABLE RULES)   ␈↓∧<i.e., there are no known
␈↓ α,␈↓∧                                                      ways to defer this any longer>␈↓

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** RESOLVE:DECISION *** (DEFER:DECISION REINVESTIGATE:DECISION
␈↓ α,␈↓                                 FILL:IN:UNDEFINED:SECTION CHOOSE:FROM
␈↓ α,␈↓                                 WRITE:PROGRAM SERVE)

␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(AS FAR AS WE KNOW AT THIS INSTANT, THE DECISION
␈↓ α,␈↓     (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1) )
␈↓ α,␈↓   CANNOT BE DEFERRED ANY LONGER)

␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(TRY TO RESOLVE (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF
␈↓ α,␈↓                      CF:1)) WITH PRESENT KNOWLEDGE; IF THAT FAILS, ASK
␈↓ α,␈↓                      THE  USER ABOUT IT)

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES

␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** ASK:USER:ABOUT *** (RESOLVE:DECISION DEFER:DECISION REINVESTIG-
␈↓ α,␈↓                                  -ATE:DECISION FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓                                  CHOOSE:FROM WRITE:PROGRAM SERVE)

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(ASK THE USER TO RESOLVE DECISION ((BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR
␈↓ α,␈↓    MAY BE REQUIRED OF CF:1))


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.18␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE PUP CANNOT RESOLVE IT, BUT MUST AT THIS TIME)

␈↓ α,␈↓REQUEST: ␈↓βQUIT

␈↓ α,␈↓MOVE CURSOR TO ( CF:1 TYPE OF ( CONCEPT:FORMATION))

␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓     (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED
␈↓ α,␈↓      OF CF:1)
␈↓ α,␈↓ SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.

␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓  ␈↓∧      If the user answered
␈↓ α,␈↓∧affirmatively, copious amounts of data would appear, describing
␈↓ α,␈↓∧what this choice is, the effects of each possible answer, why it
␈↓ α,␈↓∧can't wait, who wanted this done, and so on. ␈↓

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.


␈↓ α,␈↓␈↓∧Here are a few more direct queries to BEINGS during the dialogue:␈↓

␈↓ α,␈↓REQUEST: ␈↓βUNDEFINED:SECTION:LIST
␈↓ α,␈↓β␈↓(( PARTITION:A:DOMAIN) ( PAD:2 TYPE OF ( PARTITION:A:DOMAIN)))

␈↓ α,␈↓REQUEST: ␈↓βAWARE:USER:LIST
␈↓ α,␈↓β␈↓(( THE NAME OF THE PROGRAM TO DO ( CONCEPT:FORMATION) IS CF:1)
␈↓ α,␈↓PUP: (PUP & USER MAY REFER TO THIS NEW
␈↓ α,␈↓        SPECIALIZED VERSION OF (CONCEPT:FORMATION) AS CF:1)

␈↓ α,␈↓REQUEST: ␈↓β(PLUS 2 2)␈↓ ␈↓∧ <The evaluation inside an interrupt is converse to DWIM:
␈↓ α,␈↓∧                if the expression can be understood, it is processed specially;
␈↓ α,␈↓∧                otherwise, we THEN try to EVAL the expression.>␈↓
␈↓ α,␈↓4

␈↓ α,␈↓REQUEST: ␈↓βDEMONS
␈↓ α,␈↓β␈↓THE CURRENT DEMONS ARE:
␈↓ α,␈↓       (FRINGE:OF:CONCIOUSNESS:DEMON PSYCHOLOGY:DEMON PROGRAM:WRITING:DEMONS
␈↓ α,␈↓        DEFERRAL:DEMON REINVESTIGATION:DEMON IDIOM:DEMON
␈↓ α,␈↓        SPECIFICITY:CHECK:DEMON FORGETFUL:USER:DEMON)
␈↓ α,␈↓THE DEMON STACK IS ((PROGRAM:WRITING:DEMONS DEFERRAL:DEMON REINVESTIGATI-
␈↓ α,␈↓                            -ON:DEMON IDIOM:DEMON SPECIFICITY:CHECK:DEMON
␈↓ α,␈↓                            FORGETFUL:USER:DEMON)
␈↓ α,␈↓                    (FORGETFUL:USER:DEMON))


␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.19␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓REQUEST: ␈↓βBEING:STACK
␈↓ α,␈↓β␈↓(WRITE:PROGRAM SERVE)

␈↓ α,␈↓REQUEST: ␈↓βNEW:LEVEL
␈↓ α,␈↓HELLO THERE.  I AM READY TO SWITCH TO A DIFFERENT MODE OF INTERRUPTABILITY.

␈↓ α,␈↓HOW OFTEN SHOULD I LET YOU INTERRRUPT ME, TO ASK ME ABOUT WHAT I'M
␈↓ α,␈↓   DOING?  TYPE A DIGIT, AS EXPLAINED BELOW:

␈↓ α,␈↓ 0  NEVER (ULTIMATE PRODUCTION-RUN MODE)
␈↓ α,␈↓ 2  A COUPLE OF TIMES DURING THE COURSE OF WRITING A PROGRAM
␈↓ α,␈↓ 4  DURING EACH PHASE OF WRITING A PROGRAM
␈↓ α,␈↓ 6  DURING THE WRITING OF EACH NONTRIVIAL SUBFUNCTION OF A PROGRAM
␈↓ α,␈↓ 8  DURING EACH PHASE OF WRITING EACH SUBFUNCTION OF A PROGRAM
␈↓ α,␈↓10  EACH TIME A BEING TRANSFERS CONTROL (ULTIMATE DEBUG MODE)

␈↓ α,␈↓OK, NOW TYPE A DIGIT... ␈↓βNO␈↓

␈↓ α,␈↓***  ERROR  ***     YOU MUST TYPE ONE EVEN INTEGER FROM 0 TO 10
␈↓ α,␈↓TRY   AGAIN:
␈↓ α,␈↓␈↓β8␈↓

␈↓ α,␈↓REQUEST: ␈↓βQUIT


␈↓ α,␈↓␈↓∧This␈α∀concludes␈α∀the␈α∀"frequent-interrupt␈α∪mode"␈α∀excerpt.␈α∀In␈α∀the␈α∀terminology␈α∪of
␈↓ α,␈↓∧NEW:LEVEL,␈α∂this␈α∞was␈α∂at␈α∞interrupt␈α∂level␈α∞10,␈α∂while␈α∞the␈α∂earlier␈α∞excerpts␈α∂were␈α∞at
␈↓ α,␈↓∧level␈α↔0.␈α⊗ Recall␈α↔that␈α⊗this␈α↔last␈α⊗excerpt␈α↔was␈α⊗but␈α↔seven␈α⊗lines␈α↔in␈α↔the␈α⊗earlier
␈↓ α,␈↓∧excerpt,␈α∃which␈α∃in␈α∃turn␈α∃was␈α∃only␈α∃3%␈α∃of␈α∃the␈α∃actual␈α∃300-page␈α⊗dialogue.␈α∃ The
␈↓ α,␈↓∧reader␈α∩who␈α∩has␈α∪read␈α∩through␈α∩to␈α∩this␈α∪point␈α∩will␈α∩probably␈α∩agree␈α∪that␈α∩dialogue
␈↓ α,␈↓∧problems are central to automatic programming.␈↓

















␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.20␈↓ 	↑User/PUP6 Dialogue excerpts␈↓